package cap7;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class RadioButtonDemo extends JFrame {
	//Componentes gráficas
    private Container contenedor;
    private JPanel radioPanel,panelImagen ;
    private JLabel  imagen;  
    private ButtonGroup group;
    private JRadioButton pato;
    private JRadioButton gato ;
    private JRadioButton perro ;
    private JRadioButton conejo ;
    private JRadioButton cerdo ;
//Constructor  
    public RadioButtonDemo() {
        contenedor = getContentPane();
        radioPanel = new JPanel();
        panelImagen = new JPanel();       
//Crea el grupo y cada botón 
        group = new ButtonGroup();      
        pato = new JRadioButton("pato");
        gato = new JRadioButton("gato");
        perro = new JRadioButton("perro");
        conejo = new JRadioButton("conejo");
        cerdo = new JRadioButton("cerdo");
        setSize(400, 320);
	  setDefaultCloseOperation(EXIT_ON_CLOSE);
        armaRadioButton();
}
private void armaRadioButton(){
//Establece la imagen inicial para la etiqueta y el tamaño
        imagen = new JLabel(new ImageIcon("pato.gif"));
        imagen.setPreferredSize(new Dimension(180, 180));
//Establece el diagramado de los paneles 
        contenedor.setLayout (new BorderLayout());
        radioPanel.setLayout(new GridLayout(0, 1));
//Crea y registra un mismo oyente a todos los botones       
        Oyente oyente = new Oyente();
        pato.addActionListener(oyente);
        gato.addActionListener(oyente);
        perro.addActionListener(oyente);
        conejo.addActionListener(oyente);
        cerdo.addActionListener(oyente);
// Agrupa los botones y activa el boton del pato
        pato.setSelected(true);
        group.add(pato);
        group.add(gato);
        group.add(perro);
        group.add(conejo);
        group.add(cerdo);               
      //Inserta los botones y la imagen en el panel
              radioPanel.add(pato);
              radioPanel.add(gato);
              radioPanel.add(perro);
              radioPanel.add(conejo);
              radioPanel.add(cerdo);             
              panelImagen.add( imagen);
      //Inserta los paneles en el contenedor
              contenedor.add(radioPanel, BorderLayout.WEST);
              contenedor.add(panelImagen, BorderLayout.CENTER);    }
      private class Oyente implements ActionListener {
          public void actionPerformed(ActionEvent e) {
              String  m = (String)e.getActionCommand();
               imagen.setIcon(new ImageIcon(m + ".gif"));
          }
      }  
        
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		(new RadioButtonDemo()).setVisible(true);

	}

}
